Default Maskers
Overview
Obfusware is configured with a set of default maskers that are appropriate for the most common classes of sensitive data. An Obfusware masker is a specific configuration of an Obfusware data masking algorithm. The default maskers configurations are loaded at startup. Obfusware also allows additional maskers to be defined and loaded through the use of JSON configurations loaded programmatically or using pre-defined configuration files.
Default Maskers
IdentityMasker
Simple identity masker which performs a NOP masking operation and returns the original object to be masked. The IdentityMasker can be useful for testing and benchmarking.
Algorithm: Identity
Example
original value: AnExampleString
masked value: AnExampleString
RedactMasker
Redaction masker replaces strings with the string <REDACTED>
.
Algorithm: Redact
Example
original value: AnExampleString
masked value: <REDACTED>
HiddenMasker
Replaces the characters of the string being masked with the *
character.
Algorithm: Hidden
Example
original value: AnExampleString
masked value: ***************
LoremIpsumMasker
Replaces the text being masked with an equivalent (less than or equal) length Lorem Ipsum text.
For short text strings the minimum returned is the string Lorem
.
Algorithm: TextSubstitution
Example
original value: The quick brown fox jumped over the lazy dogs.
masked value: Lorem ipsum dolor sit amet, consectetur.
EmailMasker
Replaces an email address with an email address for the domain @example.com
.
The user-part (before the @) is replaced with name generated using a first name or initial and a last name with
a possible 3-4 digit number (example: msmith1234@example.com
).
Algorithm: Email
Example
original value: johnsmith@company.com
masked value: mbrown1234@example.com
USLastNameMasker
Replaces original string data with a realistic, culturally USA, last name.
Algorithm: HashList
Example
original value: MacDonald
masked value: Figeroa
USFirstNameMasker
Replaces original string data with a realistic, culturally USA, first name.
Algorithm: HashList
Example
original value: Veronika
masked value: Maryann
USFullNameMasker
Replaces original string data with a realistic, culturally USA, full name (Firstname Lastname).
Algorithm: HashList
Example
original value: Mattie Poquette
masked value: Willard Kolmetz
USCommaNameMasker
Replaces original string data with a realistic, culturally USA, lastname first, comma seperated full name (i.e. Lastname, Firstname).
Algorithm: HashList
Example
original value: Gillian, Valentine
masked value: Kolmetz, Willard
USStreetAddress1Masker
Replaces original string data with a realistic USA street address.
Algorithm: HashList
Example
original value: 12 Clark St
masked value: 74 S Westgate St
USCityMasker
Replaces original string data with a realistic USA city address.
Algorithm: HashList
Example
original value: Brooklyn
masked value: Albany
USStateNameMasker
Replaces original string data with a realistic USA State name.
Algorithm: HashList
Example
original value: New York
masked value: Maryland
USStateAbbrMasker
Replaces original string data with a realistic USA State abbreviation.
Algorithm: HashList
Example
original value: NY
masked value: MD
CountryMasker
Replaces original string data with a realistic Country name.
Algorithm: HashList
Example
original value: Switzerland
masked value: Denmark
CountryAbbrMasker
Replaces original string data with a realistic Country abbreviation.
Algorithm: HashList
Example
original value: CH
masked value: DK
USCountyMasker
Replaces original string data with a realistic USA County name.
Algorithm: HashList
Example
original value: Dallas County
masked value: Macon County
USVariableDateMasker
Replaces the original date item, in US m/d/yyyy format, with a new date with the same month and year but a different day value.
Algorithm: MultiDate
Example
original value: 1/31/1963
masked value: 1/15/1963
SSNMasker
Replaces the original Social Security Number (SSN) string by generating a new SSN preserving the first three digits
Algorithm: Segment
Example
original value: 900-12-3456
masked value: 900-65-7890
SSNLast4Masker
Replaces the all digits except the last 4 digits of the Social Security Number (SSN) string being masked with the '*' character
Algorithm: Segment
Example
original value: 900-12-3456
masked value: ***-**-7890
CCLast4Masker
Replaces all but the last 4 digits of the credit card number with the '*' character
Algorithm: CCAccount
Example
original value: 3782 822463 10005
masked value: **** ****** *0005
CreditCardMasker
Generates a new credit card number, preserving the first 4 digits and generating a valid Luhn digit. If the credit card number is invalid (Luhn check is false), then the digits are replaced by all '1' digits.
Algorithm: CCAccount
Example
original value: 3782 822463 10005
masked value: 3782 231620 76882
US555TelephoneMasker
Generates a new telephone number, replacing the exchange with '555' and the final digits with a new sequence of digits. Since there are no '555' exchanges, this can be used to prevent unwanted potential calls by automated systems.
Algorithm: USTelephone
Example
original value: 603-971-1234
masked value: 603-555-2143
USExchangeTelephoneMasker
Generates a new telephone number, replacing the exchange and the final digits with a new sequence of digits.
Algorithm: USTelephone
Example
original value: 603-971-1234
masked value: 603-732-2143
VariableZipcodeMasker
Generates a new zipcode, preserving the first 3 digits, and replacing the 4 & 5 digits and replacing any plus4 digits.
Algorithm: USZipcode
Example
original value: 03031-1234
masked value: 03055-4321
What other maskers does Obfusware support
Obfusware supports over a dozen different masking algorithms. Each of these algorithms can be configured to implement multiple maskers which depend on the specific parameters being used. The number of specific maskers which can be configured is virtually unlimited.